/*
简单表单提交验证

*checker格式范例:
*formCheck={
				name1:['require','请填写XXX1'],//name为需要验证的input的name,'require'为验证条件,'请填写XX'为提示语
				name2:[0,'请填写name2'],//使用0等同于require,必填项
				name3:[4,'name3的长度请大于等于4'],//使用数字,name3的长度需要大于等于10
				name4:['select','0','请选择name4'],//select框使用此配置,name4的select如果等于'0'则会触发
				name5:[['number',3],'请填写大于三位数'],//使用'number',判断为数字,使用数组时,数组内的条件依次判断全部通过才可通过
				name6:['int','请填写整数'],//number是含小数的,int只判断整数
				name7:['CH','请填写汉字'],//判断汉字
				name8:['noCH','不可使用汉字'],//汉字,韩文,日语都会被判断,上同
				name9:['4~6','请填写4-6位'],//长度限制,即>=4并<=6,限制4位可以填写4~4
				name10:['mobile','请填写手机号'],//手机号验证,长度固定为11请勿重复使用长度验证可能会无法通过
				name11:['email','请填写邮箱'],//邮箱格式验证
			}
*form为表单所属form的选择器名
*若传入第三个参数function(msg){ }
*则会替代alert使用第三个参数的函数内容进行回调提示
* 简单调用方法 kyiFormChecker(formCheck,'.form')

@Author: Koyoi
@Date: 2017-7-25
@Last Modified by: Koyoi
@Last Modified time: 2017-7-25 16:53:52
@version 0.0.11 beta
*/
/*(c) Copyright 2017 Koyoi. All Rights Reserved. */

function kyiFormChecker(cheker,form,button){
	if(typeof(arguments[3]) == 'function'){
		var kyiFormAleter=arguments[3];
	}else{
		function kyiFormAleter(msg){
			alert(msg)
		}
	}
	
	function checkFormAs(check,name,form){
		var checkFormAs=true;
		if(check[0] != 'select'){
			$.each($(form).find('input[name="'+name+'"]'),function(i,j){
				if(typeof($(j).attr('disabled'))=="undefined"){
				var val=$(j).val();
				if(check[0] == 'require' || check[0] === 0){
			
						if(!val.length>0){
							kyiFormAleter(check[1]);
							checkFormAs=false;
							return false;
						}	
				}else if(typeof(check[0]) == 'number'){	
						if(val.length<check[0]){
							kyiFormAleter(check[1]);
							checkFormAs=false;
							return false;
						}
				}else if(check[0] == 'select'){
						var val=$(form).find('select[name="'+name+'"]').val();
						if(val==check[1]){
								kyiFormAleter(check[2]);
								checkFormAs=false;
								return false;
							}	
				}else if(check[0] == 'number'){
					var test = /^\d+(\.\d+)?$/;
					if(!test.exec(val)){
						kyiFormAleter(check[1]);
						checkFormAs=false;
						return false;
					}
				}else if(check[0] == 'int'){
					var test = /^\d+?$/;
					if(!test.exec(val)){
						kyiFormAleter(check[1]);
						checkFormAs=false;
						return false;
					}
				}else if(check[0] == 'CH'){
					var test = /^[\u4E00-\u9FA5\uF900-\uFA2D]+?$/;
					if(!test.exec(val)){
						kyiFormAleter(check[1]);
						checkFormAs=false;
						return false;
					}
				}else if(check[0] == 'noCH'){
					var test = /[\u4E00-\u9FA5\uF900-\uFA2D]/;
					if(test.exec(val)){
						kyiFormAleter(check[1]);
						checkFormAs=false;
						return false;
					}
				}else if(check[0] == 'mobile'){
					var reg  =  /^1[3|4|5|7|8][0-9]{9}$/;
					if(!reg.test(val)){
						kyiFormAleter(check[1]);
						checkFormAs=false;
						return false;
					}
				}else if(check[0] == 'email'){
					var reg  = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
					if(!reg.test(val)){
						kyiFormAleter(check[1]);
						checkFormAs=false;
						return false;
					}
				}else if(check[0].indexOf('~')>0){
					console.log(check[0].indexOf('~'));
					var min=check[0].split('~')[0];
					var max=check[0].split('~')[1];
					if(val.length<min || val.length>max){
						kyiFormAleter(check[1]);
						checkFormAs=false;
						return false;
					}
				}
			
				}
			})
		}else{
			console.log($(form).find('select[name="'+name+'"]'));
			$.each($(form).find('select[name="'+name+'"]'),function(i,j){
				var val=$(j).val();
				if(val==check[1] || $(j).find('option').length ==0){
					kyiFormAleter(check[2]);
					checkFormAs=false;
					return false;
				}
				
				
			})
			
		}
		
		

		 return checkFormAs;
	}
	
	$(button).click(function(){
			var formsubmit=true;
				$.each(cheker,function(k,v){
					console.log(k);
					console.log(typeof(v[0]))
					
					if(typeof(v[0]) == 'object'){
						$.each(v[0],function(k1,v1){
							if(!checkFormAs([v1,v[1]],k,form)){							
								formsubmit= false;
								return false;
							}
						})
						if(!formsubmit){
							return false;
						}
					}else{
						if(!checkFormAs(v,k,form)){							
							formsubmit= false;
							return false;
						}

					}
							
				})
				
			return formsubmit;
	})
}
	
